Skip to content

fix: preserve cached annotations when another term is absent - #955

Open
Gavin Barron (gavinbarron) wants to merge 1 commit into
mainfrom
gavinbarron-preserve-cached-annotation-records
Open

Gavin Barron (gavinbarron) wants to merge 1 commit into
mainfrom
gavinbarron-preserve-cached-annotation-records

Conversation

@gavinbarron

Copy link
Copy Markdown
Contributor

Summary

  • Create annotation dictionaries only for new targets so an absent term cannot evict cached records or merged custom query options.
  • Evaluate uncached annotations once while preserving intentional cache resets when the model changes.
  • Add regression coverage for first-time and existing targets, repeated absent terms, cached record identity and merged state, model changes, and navigation GET-to-$count custom-option propagation.

Fixes #951.

Validation

  • Confirmed all four new regression cases fail before the fix.
  • Focused annotation-cache and $count tests: 26 passed.
  • Full reader test suite: 1,290 passed.

No endpoint-specific inheritance workarounds, count narrowing changes, optional request-body changes, or pipeline changes.

Keep existing target dictionaries and evaluate uncached annotations once. Cover merged record identity, absent terms, model resets, and navigation GET to count custom-option propagation.

Fixes #951

Co-authored-by: Copilot App <[email protected]>
@gavinbarron
Gavin Barron (gavinbarron) requested a review from a team as a code owner November 12, 2026 23:42
@sonarqubecloud

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Annotation cache evicts existing target annotations when another annotation is absent, losing custom query options

1 participant